#ifndef DO_JOB_ON_INITIALIZE_H
#define DO_JOB_ON_INITIALIZE_H


template<typename Func>
class DoJobOnInitializingObject
{
public:
	DoJobOnInitializingObject(Func func) { func(); }
};

template<typename T>
void* createInitializingJob(T func)
{
	DoJobOnInitializingObject<T> _(func);
	return NULL;
}

#define DoJobOnInitializing(name, func) void* name##DoJobOnInitializing = createInitializingJob(func)


#endif